package com.zmn.oms.third.suning.service;

import com.zmn.oms.common.exception.OmsBaseException;
import com.zmn.oms.model.entity.work.OrderWorkLogChange;
import com.zmn.oms.third.suning.dto.SuningRequestDTO;

/**
 * 苏宁保外渠道对接的接口定义类
 *
 * @author xiewenbing
 * @date  2021/01//05 17:00
 */
public interface SuningService {

    /**
     * 处理渠道发送过来的请求
     * @param requestDTO
     * @return
     */
    String handleOrderRequest(SuningRequestDTO requestDTO);

    /**
     * 同步订单派单
     * @param orderWorkLogChange
     * @throws OmsBaseException
     */
    void syncOrderDistribute(OrderWorkLogChange orderWorkLogChange) throws OmsBaseException;

    /**
     * 同步订单预约时间
     * @param orderWorkLogChange
     * @throws OmsBaseException
     */
    void syncOrderDutytime(OrderWorkLogChange orderWorkLogChange) throws OmsBaseException;

    /**
     * 同步订单完成
     * @param orderWorkLogChange
     * @throws OmsBaseException
     */
    void syncOrderComplete(OrderWorkLogChange orderWorkLogChange) throws OmsBaseException;

    /**
     * 同步订单上门
     * @param orderWorkLogChange
     * @throws OmsBaseException
     */
    void syncOrderVisit(OrderWorkLogChange orderWorkLogChange) throws OmsBaseException;

    /**
     * 同步订单取消
     * @param orderWorkLogChange
     * @throws OmsBaseException
     */
    void syncOrderCancel(OrderWorkLogChange orderWorkLogChange) throws OmsBaseException;
}
